/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dpy.appmvdpy.Facades;

import com.dpy.appmvdpy.Models.Clientes;
import com.dpy.appmvdpy.Models.Produtos;
import java.util.List;
import javax.persistence.Query;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

/**
 *
 * @author ac_psoares
 */
@Component
@Scope(value="request")
public class ProdutosFacade extends DefaultFacade<Produtos> {

    public ProdutosFacade()
    {
       super(Produtos.class);
    }
     
    @Override
    public void setId(Produtos entity) {
        entity.setId(this.getMaxId() + 1);
    }    
    
    @Transactional(readOnly=true)
    @Override
    public List<Produtos> listAll()
    {
       Query q = em.createQuery("SELECT c from Produtos as c ORDER BY c.referencia ASC");
       return q.getResultList();
    }
    
     @Transactional(readOnly=true)
     @Override
    public List<Produtos> listAll(int pag)
    {
        Query q = em.createQuery("SELECT c from Produtos as c ORDER BY c.referencia ASC");
       q.setFirstResult(pag * 100);
       q.setMaxResults(100);
       return q.getResultList();
    }
     
     @Transactional
      public Produtos getByCodigoDpy(String codigoDPY) {
        Query q = em.createQuery("SELECT c from Produtos as c where c.codigoDPY = :codigo");
        q.setParameter("codigo", codigoDPY);
        
        if (q.getResultList().isEmpty())
            return new Produtos();
        else
            return (Produtos) q.getSingleResult();
      }
}
